1. Field of the Invention
The present invention generally relates to switching host devices on a communications bus, and more specifically, the present invention relates to switching host devices on a Universal Serial Bus (USB).
2. Background Infommation
Various types of communications links and communications protocols are used to interconnect devices and allow interconnected devices to communicate with one another. Communications links utilize different methods for controlling the flow of instructions and data between interconnected devices. For example, one device may operate as a host device of the communications link while other devices operate as peripheral devices on the communications link. In this configuration, the host device may issue commands and tokens on the communications link, which permits the peripheral devices to communicate. If a particular peripheral device does not receive an appropriate command or token, then the peripheral device does not transmit on the communications link. Thus, a single host device controls the flow of commands and data on the communications link.
Another configuration provides peer-to-peer interconnections between various devices on a communications link. In this configuration, the devices are not identified as either a host device or a peripheral device. Instead, each devices capable of issuing commands and data on the communications link without requiring xe2x80x9cpermissionxe2x80x9d from another device.
One particular system for interconnecting devices is provided by the Universal Serial Bus (USB) standard. USB is a useful system for connecting a series of peripheral devices or USB functions to a computer. The USB utilizes a USB host controller contained within a personal computer (PC) or other computing device. The USB host controller operates as the USB host device or master and controls other USB slave devices or USB functions connected to the USB. To illustrate, FIG. 1 is a block diagram illustrating a USB host device 103 coupled to a plurality of USB functions 115, 117 and 119 through a USB hub 107. All data flow on the USB is controlled or monitored by the USB host device 103. The USB host device 103 issues tokens and commands to the attached USB functions 115, 117 and 119 giving permission to transmit on the USB.
The USB specification provides for a computer (e.g. a personal computer) as the host device, issuing tokens and commands to all USB functions. The USB specification does not provide for USB functions that are shared among multiple hosts. In addition, the USB specification does not address the issue of providing communications between USB functions when a USB host controller is removed or is not active (e.g. turned off). Thus, when a USB host device is removed or deactivated, the USB functions 115, 117 and 119 are no longer able to communicate. Furthermore, the USB specification does not provide a system for switching control of the USB among USB host devices to enable a USB function to be available to the particular USB host device that needs to communicate with the USB function.
The present invention provides USB switching device including a first hub device to be coupled to a first host device and a second hub device to be coupled to a second host device. The switching device also includes a first selection device coupled to a first peripheral device and the first and second hub devices. The first selection device is to selectively couple the first peripheral device to one of the first and second host devices in response to a selection signal. The switching device also includes a second selection device coupled to a second peripheral device and the first and second hub devices. The second selection device is to selectively couple the second peripheral device to said one of the first and second host devices in response to the selection signal. Additional features and benefits of the present invention will become apparent from the detailed description, figures and claims set forth below.